//
//  Emoticon.swift
//  Status
//
//  Created by Kylin on 16/3/27.
//  Copyright © 2016年 Kylin. All rights reserved.
//

import UIKit

class Emoticon: NSObject {

    // MARK:- 属性
    /// emoji对应的code
    var code : String? {
        didSet {
            guard let code = code else {
                return
            }
             // 1.创建扫描器
            let scanner = NSScanner(string: code)
            // 2.扫描字符串中的内容,并且获取扫描结果
            var value : UInt32 = 0
            scanner.scanHexInt(&value)
            
            // 3.将value转成字符
            let c = Character(UnicodeScalar(value))
            // 4.将字符转成字符串
            emojiCode = String(c)
        }
    }
    
    /// 表情对应的文字
    var chs : String?
    
    /// 表情对应的图片名称
    var png : String?{
        didSet {
            // 校验空值
            guard let png = png else{
                return
            }
            
            // 拼接路径
            pngPath = NSBundle.mainBundle().bundlePath + "/Emoticons.bundle/" + png
        }
    }
    
    /// emoji对应的code
    var emojiCode : String?
    
    /// 表情对应的图片路径
    var pngPath : String?
    
    /// 标识该Emoticon是否是一个删除按钮
    var isRemove : Bool = false
    
    /// 标识该Emoticon是否是一个空白按钮
    var isEmpty : Bool = false

    // MARK:- 构靠函数
    init(isEmpty : Bool) {
        self.isEmpty = isEmpty
    }
    
    init(isRemove : Bool) {
        self.isRemove = isRemove
    }
    
    init(dict : [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) { }
    
    // 重写打印方法
    override var description : String {
        return dictionaryWithValuesForKeys(["emojiCode","chs","pngPath"]).description
    }
}
